From: Florian Müllner Date: Sat, 13 Apr 2019 18:34:29 +0000 (-0500) Subject: environment: Warn when trying to access a deprecated actor property X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~845^2^2~269 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=526bb72f3d10d21e59eee5f3557ec32081845684;p=gnome-shell.git environment: Warn when trying to access a deprecated actor property The port away from the old Shell.GenericContainer actor turned many JS classes with a corresponding actor property into Clutter.Actor subclasses. For compatibility reasons, those properties were kept around for a while. They were now removed and any code that still uses them should be adjusted. Facilitate that transition by defining the compatibility property on Clutter.Actor itself, but log a warning every time it is accessed. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/487 --- diff --git a/js/ui/environment.js b/js/ui/environment.js index e22ec7402..f70394710 100644 --- a/js/ui/environment.js +++ b/js/ui/environment.js @@ -96,6 +96,15 @@ function init() { Clutter.Actor.prototype.toString = function() { return St.describe_actor(this); }; + // Deprecation warning for former JS classes turned into an actor subclass + Object.defineProperty(Clutter.Actor.prototype, 'actor', { + get() { + let klass = this.constructor.name; + let { stack } = new Error(); + log(`Usage of object.actor is deprecated for ${klass}\n${stack}`); + return this; + } + }); let origToString = Object.prototype.toString; Object.prototype.toString = function() {